package object2;

/**
 * super关键字
 */
public class SuperTest {

    public static void main(String[] args) {

        Test test = new Test();

        test.test();

        /*
            super带来的便利
            1)调用父类的构造器的好处(分工明确，父类属性由父类初始化，子类属性由子类初始化)
            2)子类中有和父类的成员(属性和方法)重名时，为了访问父类成员，必须通过super。如果没有重名，使用
              super、this直接访问时一样的效果
            3)super的访问不限于直接父类，如果爷爷和本类中有同名的成员，也可以使用super去访问爷爷类的成员;
              访问遵循就近原则
         */

        /*
            super和this的比较

            区别点                     this                              super
            访问属性         访问本类中的属性，如果本类没有则找父类     从父类开始查找属性
            调用方法         访问本类中的方法，如果本类没有则找父类     从父类开始查找方法
            调用构造器       调用本类构造器，必须放在构造器首行         调用父类构造器，必须放在子类构造器首行
            特殊             表示当前对象                           子类中访问父类对象
         */
    }
}
